ModifyDocumentState

ModifyDocumentState
Main
History-Relevant
Rückgabewert
 
RET
   
Parameterliste
DocumentId
IN
LONG_NUMERIC_IDENTIFIER
>DOCUMENT.DOCUMENTID
VersionId
IN
LONG_NUMERIC_IDENTIFIER
>VERSION.VERSIONID
VersionState
IN
Enum: VersionState
>VERSION.VERSIONSTATECD
AllVersions
IN
Boolean
 
Kurzbeschreibung:
Dieser Service macht einen Statuswechsel auf wahlweise einer oder mehreren Versionen und dem zugehörigen Dokument. (Key: DocumentId, VersionId; Wenn VersionId = 0 wird die CurrentVersion adressiert, ansonsten wird eine bestimmte Version adressiert. Im Falle von VersionId = 0 kommt der Parameter AllVersions zum tragen. Ist dieser true, so werden alle (nicht zum Löschen markierten) Versionen des Dokuments angesprochen.
Der Dokumentstatus wird anhand des Zustands seiner Versionen nach dem Update neu gebildet.
Dieser Service ist nicht erlaubt, wenn das Dokument, von wem auch immer, ausgecheckt ist!
VersionState:
RELEASED: Ist der Versionsstatus AVAILABLE wird der Versionsstatus auf RELEASED gesetzt.
AVAILABLE: Ist der Versionsstatus RELEASED wird der Versionsstatus auf AVAILABLE gesetzt.
RETIRED: Ist der Versionsstatus RELEASED wird der Versionsstatus auf RETIRED gesetzt.
(Spezialfall: RETIRED und AllVersions = true. Alle Versionen unabgängig ihrer Stati werden RETIRED gesetzt)
Achtung
Achtung
Versionen welche RETIRED sind, können nicht wieder auf RELEASED oder AVAILABLE gesetzt werden!
DocumentState:
Der Dokumentstatus wird wiefolgt gebildet:
  • Wenn keine Available- oder Released-Versionen enthalten sind, wird das Dokument automatisch Retired
  • Sobald Available-Versionen vorkommen wird der Dokumentstatus Available
  • Sobald Released-Versionen vorkommen wird der Dokumentstatus Released
Fehlerhandling/Plausibilisierung:
Generell gelten die Regeln (PK, AK, FK, Unique, NotNull) der Datenbank. Die zusätzlichen Fehler sind:
  • Aufgrund von Validator-Prüfungen (VD)
  • Wenn das Dokument über die DocumentId nicht gefunden wird (1)
  • Wenn auf der verknüpften Sicherheitszone die Modify-Rechte fehlen (2) **
  • Wenn das Document ausgecheckt ist (3)
  • Wenn der LinkMode auf ‚Mandatory’ ist und beim Statuswechsel auf ‚Released’ kein OOLink existiert (4)
  • Wenn eines der in ‚RequiredFields’ erfassten Attribute beim Statuswechsel auf ‚Released’ leer ist (5)
  • Wenn die Prüfung der ‚RequiredFields’ einen unerwarteten Fehler verursacht (6)
  • Wenn der Archivierungsstatus auf ‚PENDING’, ‚PROCESSING’, oder ‚ARCHIVED’ steht; sich das Dokument also bereits in der Archivierung befindet oder bereits archiviert ist (7)
  • Wenn der Archivierungsstatus auf ‚INITIATED’ steht und der ArchivePendingTS bereits verstrichen ist (8)
  • Wenn sich das Dokument in einer Vorkategorie befindet und VersionState = RELEASED versucht wird (9)
Bemerkungen:
(1): ModDocNEx
(2): ModDocInsuffPriv
(3): ModDocCheckedOut
(4): ModDocStateUpdToRsdBlkOOLinkMdy
(5): ModDocStateUpdToRsdBlkEmptyAttr
(6): ModDocStateReqFieldsCheckFailed
(7): ModDocStateUpdBlkWrongArcState
(8): ModDocStateUpdBlkOutdatedArcState
(9): ModDocStateUpdBlkPreCat
Current- und Released-Version:
CurrentVersion: Immer die letzte Available oder Released Version
ReleasedVersion: Immer die letzte Released Version
** Handelt es sich um ein Dokument im Archivierungsstatus „INITIATED“ so wird zusätzlich das Admin-Recht auf der Sicherheitszone benötigt!